#include <iostream>
#include <cassert>

template<typename T>
class MyVector
{
public:
    MyVector(int size = 10) {
        data = new T(size);
    }
    ~MyVector() {
        if(data != nullptr) {
            delete [] data;
            data = nullptr;
        }
    }

    // 访问
    T& at(int index) const {
        assert(index < length);
        return data[index];
    }
    // T& front() const {

    // }
    // T& back() const {

    // }
    // T& operator[](int index) {

    // }

    // // 容量
    // bool empty() const {

    // }
    // int size() const {

    // }
    // int capacity() const {

    // }

    // // 修改
    // void clear() {

    // }
    // void insert(int index, const T& d) {

    // }
    // void remove(int index) {

    // }
    // void push_back(const T& d) {

    // }
    // void pop_back() {

    // }

private:
    T* data;
    int length;
    int current_pos;
};